home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 10 / AACD 10.iso / AACD / Games / MAME / src / sndhrdw / invinco.c < prev    next >
C/C++ Source or Header  |  2000-04-23  |  2KB  |  98 lines

  1. /*
  2.  *    Invinco sound routines
  3.  */
  4.  
  5. #include "driver.h"
  6.  
  7.  
  8. /* output port 0x02 definitions - sound effect drive outputs */
  9. #define OUT_PORT_2_SAUCER        0x04
  10. #define OUT_PORT_2_MOVE1        0x08
  11. #define OUT_PORT_2_MOVE2        0x10
  12. #define OUT_PORT_2_FIRE            0x20
  13. #define OUT_PORT_2_INVHIT        0x40
  14. #define OUT_PORT_2_SHIPHIT        0x80
  15.  
  16.  
  17. #define PLAY(id,loop)           sample_start( id, id, loop )
  18. #define STOP(id)                sample_stop( id )
  19.  
  20.  
  21. /* sample file names */
  22. const char *invinco_sample_names[] =
  23. {
  24.     "*invinco",
  25.     "saucer.wav",
  26.     "move1.wav",
  27.     "move2.wav",
  28.     "fire.wav",
  29.     "invhit.wav",
  30.     "shiphit.wav",
  31.     "move3.wav",    /* currently not used */
  32.     "move4.wav",    /* currently not used */
  33.     0
  34. };
  35.  
  36. /* sample sound IDs - must match sample file name table above */
  37. enum
  38. {
  39.     SND_SAUCER = 0,
  40.     SND_MOVE1,
  41.     SND_MOVE2,
  42.     SND_FIRE,
  43.     SND_INVHIT,
  44.     SND_SHIPHIT,
  45.     SND_MOVE3,
  46.     SND_MOVE4
  47. };
  48.  
  49.  
  50. WRITE_HANDLER( invinco_sh_port2_w )
  51. {
  52.     static int port2State = 0;
  53.     int bitsChanged;
  54.     int bitsGoneHigh;
  55.     int bitsGoneLow;
  56.  
  57.  
  58.     bitsChanged  = port2State ^ data;
  59.     bitsGoneHigh = bitsChanged & data;
  60.     bitsGoneLow  = bitsChanged & ~data;
  61.  
  62.     port2State = data;
  63.  
  64.     if ( bitsGoneLow & OUT_PORT_2_SAUCER )
  65.     {
  66.         PLAY( SND_SAUCER, 0 );
  67.     }
  68.  
  69.     if ( bitsGoneLow & OUT_PORT_2_MOVE1 )
  70.     {
  71.         PLAY( SND_MOVE1, 0 );
  72.     }
  73.  
  74.     if ( bitsGoneLow & OUT_PORT_2_MOVE2 )
  75.     {
  76.         PLAY( SND_MOVE2, 0 );
  77.     }
  78.  
  79.     if ( bitsGoneLow & OUT_PORT_2_FIRE )
  80.     {
  81.         PLAY( SND_FIRE, 0 );
  82.     }
  83.  
  84.     if ( bitsGoneLow & OUT_PORT_2_INVHIT )
  85.     {
  86.         PLAY( SND_INVHIT, 0 );
  87.     }
  88.  
  89.     if ( bitsGoneLow & OUT_PORT_2_SHIPHIT )
  90.     {
  91.         PLAY( SND_SHIPHIT, 0 );
  92.     }
  93.  
  94. #if 0
  95.     logerror("Went LO: %02X  %04X\n", bitsGoneLow, cpu_get_pc());
  96. #endif
  97. }
  98.